package com.e_library.dao.classes;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.e_library.jpa.entities.Auteur;
import com.e_library.jpa.entities.Main;


public class AuteurDaoImpl implements AuteurIDao{


	private EntityManager em;
    public AuteurDaoImpl() {
    	Main m=new Main();
          em=m.em;
          em.getTransaction().begin();
	}

	
	 public void deleteOne(String id) {
		 Auteur  auteur= em.find(Auteur.class, id);
	 if (auteur == null) {
	throw new DaoException(2);
	}
	em.remove(auteur);

	em.getTransaction().commit();

	 }
	
	@SuppressWarnings("unchecked")
    public List<Auteur> getAll() {
	 return em.createQuery("select p from Auteur p").getResultList();
	 }
	
	 @SuppressWarnings("unchecked")
	 public List<Auteur> getAllLike(String modele) {
	 return em.createQuery("select p from Auteur p where p.immatriculation like :modele")
	 .setParameter("modele", modele).getResultList();
	 }
	
	 public Auteur getOne(String id) {
	 return em.find(Auteur.class, id);
	 }
	

	 public Auteur saveOne(Auteur auteur) {
	 em.persist(auteur);
     em.getTransaction().commit();

	 return auteur;
  }
	

	 public Auteur updateOne(Auteur auteur) {
	 Auteur auteur2=em.merge(auteur);
	  em.getTransaction().commit();
		 return auteur2;
	 }
}
